package com.vst.orm.base;

import java.util.List;

public interface Resulted<T> {
	/**
	 * 获取查询结果列表.
	 * 
	 * @param <T>
	 *            项类型
	 * @return 结果列表
	 */
	List<T> list();

	/**
	 * 获取查询分页数据.
	 * 
	 * @param <T>
	 *            项类型
	 * @return 分页数据
	 */
	Page<T> page();

	/**
	 * 获取查询结果集第一项.
	 * 
	 * @param <T>
	 *            项类型
	 * @return 结果集第一项
	 */
	T first();

	/**
	 * 获取查询结果唯一项.
	 * 
	 * @param <T>
	 *            项类型
	 * @return 结果唯一项
	 * @throws RuntimeException
	 *             如果结果集多于一项.
	 */
	T unique();

	/**
	 * 获取查询结果集数量.
	 * 
	 * @return 结果集数量
	 */
	int count();
}
